﻿using System;

namespace PolePositionMobile.Entities
{
    /// <summary>
    /// An entity representing a pole
    /// </summary>
    [Serializable]
    public class EPole
    {
        //Created by: VMCoder
        //Creation date: -
        //Last updated by: VMCoder
        //Last update: 2008.04.10

        #region Private Members
        Int32 m_PoleId;
        Int32 m_DataFk = Int32.MinValue;
        Int32 m_TopTypeFk = Int32.MinValue;
        Int32 m_SpeciesFk = Int32.MinValue;
        Int32 m_TreatmentFk = Int32.MinValue;
        Int32 m_Year;
        Int32 m_ClassFk = Int32.MinValue;
        double m_Length;
        Int32 m_LVisit;
        string m_LVisitor = "";
        string m_Number;
        double m_Latitude;
        double m_Longitude;
        double m_Altitude;
        Int32 m_SatelliteCount;
        DateTime m_SatelliteTime;
        bool m_SolutionAvailable;
        Int32 m_PoleServerID;
        DateTime m_UploadedDate;
        #endregion Private Members

        #region Properties
        public Int32 PoleId
        {
            get { return m_PoleId; }
            set { m_PoleId = value; }
        }
        public Int32 DataFk
        {
            get { return m_DataFk; }
            set { m_DataFk = value; }
        }
        public Int32 TopTypeFk
        {
            get { return m_TopTypeFk; }
            set { m_TopTypeFk = value; }
        }
        public Int32 SpeciesFk
        {
            get { return m_SpeciesFk; }
            set { m_SpeciesFk = value; }
        }
        public Int32 TreatmentFk
        {
            get { return m_TreatmentFk; }
            set { m_TreatmentFk = value; }
        }
        public Int32 Year
        {
            get { return m_Year; }
            set { m_Year = value; }
        }
        public Int32 ClassFk
        {
            get { return m_ClassFk; }
            set { m_ClassFk = value; }
        }
        public double Length
        {
            get { return m_Length; }
            set { m_Length = value; }
        }
        public Int32 LVisit
        {
            get { return m_LVisit; }
            set { m_LVisit = value; }
        }
        public string LVisitor
        {
            get { return m_LVisitor; }
            set { m_LVisitor = value; }
        }
        public string Number
        {
            get { return m_Number; }
            set { m_Number = value; }
        }
        public double Latitude
        {
            get { return m_Latitude; }
            set { m_Latitude = value; }
        }
        public double Longitude
        {
            get { return m_Longitude; }
            set { m_Longitude = value; }
        }
        public double Altitude
        {
            get { return m_Altitude; }
            set { m_Altitude = value; }
        }
        public Int32 SatelliteCount
        {
            get { return m_SatelliteCount; }
            set { m_SatelliteCount = value; }
        }
        public DateTime SatelliteTime
        {
            get { return m_SatelliteTime; }
            set { m_SatelliteTime = value; }
        }
        public bool SolutionAvailable
        {
            get { return m_SolutionAvailable; }
            set { m_SolutionAvailable = value; }
        }
        public Int32  PoleServerID
        {
            get { return m_PoleServerID; }
            set { m_PoleServerID = value; }
        }
        public DateTime  UploadedDate 
        {
            get { return m_UploadedDate; }
            set { m_UploadedDate = value; } 
        }
        #endregion Properties

        #region Constructors
		public EPole()
		{
            m_PoleId = Int32.MinValue;
		}
        public EPole(Int32 poleId)
			: this()
		{
            m_PoleId = poleId;
		}
        public EPole(Int32 poleId, Int32 dataFk, Int32 topTypeFk, Int32 speciesFk, Int32 treatmentFk, Int32 year, Int32 classFk, double length, Int32 lVisit, string lVisitor, string number, double latitude, double longitude, double altitude, Int32 satelliteCount, DateTime satelliteTime, bool solutionAvailable)
            : this(poleId)
        {
            m_DataFk = dataFk;
            m_TopTypeFk = topTypeFk;
            m_SpeciesFk = speciesFk;
            m_TreatmentFk = treatmentFk;
            m_Year = year;
            m_ClassFk = classFk;
            m_Length = length;
            m_LVisit = lVisit;
            m_LVisitor = lVisitor;
            m_Number = number;
            m_Latitude = latitude;
            m_Longitude = longitude;
            m_Altitude = altitude;
            m_SatelliteCount = satelliteCount;
            m_SatelliteTime = satelliteTime;
            m_SolutionAvailable = solutionAvailable;
        }
        #endregion Constructors
    }
}
